//package com.example.security.config;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.parser.ParserConfig;
//import com.alibaba.fastjson.serializer.SerializerFeature;
//import com.fasterxml.jackson.databind.JavaType;
//import com.fasterxml.jackson.databind.type.TypeFactory;
//import org.springframework.context.annotation.Bean;
//import org.springframework.data.redis.cache.RedisCacheConfiguration;
//import org.springframework.data.redis.serializer.RedisSerializationContext;
//import org.springframework.data.redis.serializer.RedisSerializer;
//import org.springframework.data.redis.serializer.SerializationException;
//
//import java.nio.charset.Charset;
//import java.time.Duration;
//
///**
// * redis 使用fastJson序列化
// * @Author GoryLee
// * @Date 2022/12/4 23:16
// * @Version 1.0
// */
//public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {
//
//    public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
//
//    private Class<T> clazz;
//
//    public FastJsonRedisSerializer(Class<T> clazz) {
//        super();
//        this.clazz = clazz;
//    }
//
//    @Override
//    public byte[] serialize(T t) throws SerializationException {
//        if(t == null){
//            return new byte[0];
//        }
//        return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
//    }
//
//    @Override
//    public T deserialize(byte[] bytes) throws SerializationException {
//        if(bytes ==null || bytes.length <= 0){
//            return null;
//        }
//        String data = new String(bytes, DEFAULT_CHARSET);
//        return JSON.parseObject(data,clazz);
//    }
//
////    protected JavaType getJavaType(Class<?> clazz){
////        return TypeFactory.defaultInstance().constructType(clazz);
////    }
//}
